草庐IT

Java Swingworker 和多线程

全部标签

android线程管理onPause

我有一个扩展Thread类的类,并实现了它的run方法。publicvoidrun(){while(!terminate){if(paused){Thread.yield();}else{accummulator++;}}}这个线程是从onCreate方法产生的。当我的UI被隐藏时(当按下Home键时)我的onPause方法会将暂停标志设置为true并产生踏板。但是在DDMS中,我仍然看到线程的uTime累积并且其状态为“正在运行”。所以我的问题是。停止线程以使其不占用CPU时间的正确方法是什么? 最佳答案 在onPause之后保持

android - 线程运行中的处理程序

我是android新手,请耐心等待。我有一个TimerTask,我在服务中为其定义了run()。在run()中,我正在调用locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,LOCATION_UPDATES_MIN_TIME_MS,LOCATION_UPDATES_MIN_DISTANCE_M,gpsListener);它提示无法创建Handler,因为我相信它是一个后台线程。我该如何解决?编辑:代码fragmentlocationTask=newTimerTask(){@Overridepublicv

android - 文件系统区域中的单线程或多线程概念是什么?

众所周知,Gingerbread将采用ext4来取代YAFFS。原因似乎是YAFFS是single-threaded.有人会解释“单线程”在文件系统领域是什么意思吗?那么ext4是多线程的吗?从什么方面?谢谢。 最佳答案 Merlyn的评论是正确的。根据该文件:YAFFSislockedonaper-partitionbasisatahighlevel.Thisissimplerthantrackinglower-levellocking.YaffsDirectInterfaceusesasinglelockforallpartit

java - 应该在 UI 线程中调用 findviewbyid 吗?

问题是:我应该只在UI线程中调用Activity.findViewById吗?我问的原因是我从任意线程调用它并且它完美地工作。但后来我从其中一位用户那里得到了一个异常(exception):findViewById失败,NPE在findViewTraversal的某处。那么,这会是原因吗? 最佳答案 theAndroidUItoolkitisnotthread-safeandmustalwaysbemanipulatedontheUIthread.取自Painlessthreading.因为它不是线程安全的,所以你不知道如果在另一个

android - 以编程方式确定代码是否从 UI 线程执行

在我的Android应用程序中,我将更新UI元素的代码提取到一个单独的实用程序包中以供重用。如果当前执行上下文来自UI线程而不是非UI线程,我希望我的代码能够主动并以不同方式更新UI。是否可以通过编程方式确定当前执行是否发生在UI线程上?我希望实现的一个简单示例是:我的应用程序一直在更新大量TextView。所以,我想要一个像这样的静态实用程序:publicstaticvoidsetTextOnTextView(TextViewtv,CharSequencetext){tv.setText(text);}如果从非UI线程调用,这显然不会起作用。在那种情况下,我想强制客户端代码也传递一个

android - 适当通知 AsyncTaskLoader 有关后台线程的数据更改

我想为我的自定义数据源实现AsyncTaskLoader:publicclassDataSource{publicinterfaceDataSourceObserver{voidonDataChanged();}...}DataSource将保留已注册观察者的列表并通知他们有关更改。CustomLoader将实现DataSourceObserver。问题是如何正确通知CustomLoader,因为Loader.onContentChanged()必须从UI线程调用,但在我的例子中是DataSource操作(和调用到DataSourceObserver.onDataChanged())将

day16_java多线程(入门了解)

多线程入门一、线程和进程进程进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间和系统资源,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。进程是系统进行资源分配和调度的独立单位。单cpu同一时间点只能执行一件事情,CPU高效的切换让我们觉得是同时进行的我们在同一个进程内可以执行多个任务,每个任务就可以看成一个线程进程就是正在运行的程序进程是系统进行资源分配和调度的独立单位,每一个进程都有它自己的内存空间和系统资源。案例:百度云盘(一个应用程序:进程)下载功能(可以同时下载多个文件)线程

android - 从 Android 中的 UI 线程外部访问 GoogleMap

我正在为我的Android应用程序使用GoogleMapAndroidAPIv2。我在onCreate中按如下方式初始化了GoogleMapSupportMapFragmentfm=(SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);mGoogleMap=fm.getMap();在我的应用程序中,我需要执行一些后台任务,为此我使用了AsybcTask。在后台任务中取得进展时,我想更新map。请引用以下示例。@OverrideprotectedVoiddoInBackground(Void.

android - 不同的 Intent 服务是否在同一线程上排队?

我有两个Intent服务-IntentServiceA和IntentServiceB它们具有以下类定义:publicclassFirstServiceextendsIntentService{publicFirstService(){super("first_service");}@OverrideprotectedvoidonHandleIntent(Intentintent){Log.d("chi6rag","firststarts");for(longi=0l;i和publicclassSecondServiceextendsIntentService{publicSecondS

java - Runnable 运行在哪个线程上?

我想每100毫秒更新一次UI。在StackOverflow中搜索后,我找到了一个使用Runnable和Handler的解决方案,如下所示finalHandlerhandler=newHandler();Runnablerunnable=newRunnable(){@Overridepublicvoidrun(){//updateUIherehandler.postDelayed(this,100);}};runnable.run();有效!但我有一些问题:这个Runnable在哪个线程上运行?MainThread还是另一个线程?这是关于postDelay的文档Handler附加在Mai